package cn.edu.wynu;

import java.util.Random;

public class Test02 {
    public static void main(String[] args) {
        // 案例二：开发验证码
        // 需求：开发一个程序，可以生成指定位数的验证码，每位可以是数字、大小写字母。
        System.out.println(createCode(8));
    }
    public static String createCode(int length) {
        // 1.定义一个for循环用于控制生产多少位随机字符
        Random r = new Random();
        // 3.定义一个String类型的变量用于接收产生的每位随机字符
        String code = "";
        for (int i = 1;i <= length;i++) {
            // i = 1 2 3 4 5
            // 2.为每个位置生成一个随机字符：可能是数组、大小写字母。
            // 思路：随机一个0 1 2之间的数字出来，0代表随机一个数字字符，1、2代表随机大写字母，小写字母。
            int type = r.nextInt(3); // 0代表数字，1、2代表字母
            switch (type) {
                case 0:
                    // 随机一个数字字符
                    code += r.nextInt(10); // 0-9 code = code + 0-9中的一个数
                    break;
                case 1:
                    // 随机一个大写字母 A 65  Z 65+25  (0 - 25) + 65
                    /*char ch1 = (char)(r.nextInt(26)+65);
                    code += ch1;*/
                    code += (char)(r.nextInt(26)+65);
                    break;
                case 2:
                    // 随机一个小写字母 a 97  z 97+25  (0 - 25) + 97
                    code += (char)(r.nextInt(26)+97);
                    break;
            }
        }
        return code;
    }
}
